package ipt.pru.Fila1;

import ipt.enumeracion.Rol;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.HashSet;
import java.util.Iterator;
import java.util.StringTokenizer;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;


public class ProbarAlumnoFicheroHashSet {

	/**
	 * @param args
	 */
	
	private final static Logger logf1 = Logger.getLogger(ProbarAlumnoFicheroHashSet.class);
	
		public static void main(String[] args) {
			File archivo = null;
			FileReader fr = null;
			BufferedReader br = null;
		
			PropertyConfigurator.configure("config/log4j.properties");	
			
			HashSet<Alumno> lista = new HashSet<Alumno>();		
			
			try {
				
				
				// Apertura del fichero y creacion de BufferedReader para poder
				// hacer una lectura comoda (disponer del metodo readLine()).
				archivo = new File("data/Alumnos.txt");
				fr = new FileReader(archivo);
				br = new BufferedReader(fr);
				
				// Lectura del fichero
				String linea;
				linea = br.readLine();
				while (linea != null) {
					
					StringTokenizer st = new StringTokenizer(linea, ",");


					    Alumno a = new Alumno();
						a.setNombre(st.nextToken());
						a.setApellido1(st.nextToken());
						a.setApellido2(st.nextToken());
						a.setEdad(Integer.parseInt(st.nextToken()));
						a.setEmail(st.nextToken());
						a.setDni(st.nextToken());
						
						//TODO cambiarlo  para ke compile con la 1.6
						
						String rol = st.nextToken();
						if (rol.equalsIgnoreCase("TRABAJADOR")) {
							a.setRol(Rol.TRABAJADOR);
						} else if (rol.equalsIgnoreCase("JEFE")) {
							a.setRol(Rol.JEFE);
						} else {
							a.setRol(Rol.CLIENTE);
						}
						
					
					lista.add(a);
					a = null;
					linea = br.readLine();
				}
				Iterator<Alumno> i = lista.iterator();
				while(i.hasNext()){
					System.out.println(i.next().getNombre() + "," + i.next().getApellido1() + "," +
				    i.next().getApellido2() + "," + i.next().getDni());
				}
				

			} catch (Exception e) {
				e.printStackTrace();
				logf1.info("Ha habido un error" );
			
			} finally {
				// En el finally cerramos el fichero, para asegurarnos
				// que se cierra tanto si todo va bien como si salta
				// una excepcion.
				try {
					if (null != fr) {
						fr.close();
						logf1.info("Error al cerrar el fichero" );
					}
					
				} catch (Exception e2) {
					e2.printStackTrace();
					logf1.error("f1 Error al cerrar el fichero");
				}
				//String mensaje = "Prueba mostrar datos del fichero Alumnos en un HashSet";
				//new Registros(time_start, time_end, mensaje);
				logf1.info("f1 Prueba HashSet" );
			}
		}
	}

